Find the highest 3 valuesΒΆ

heapq.nlargest(3, D, key=D.get)

Find the highest 3 values in a dictionary.
def get_3_largest_heapq(D):

    from heapq import nlargest
    three_largest = nlargest(3, D, key = D.get)
    return three_largest
def get_3_largest_list(D):
    L = list(sorted(D.values(), reverse=True))      # [5874, 5874, 560, 500, 400, 20]
    return L[:3]
def get_3_largest_simple(D):
    L = [x for x in D.values()]         # [500, 5874, 560, 400, 5874, 20]
    L.sort()                            # [20, 400, 500, 560, 5874, 5874]
    return L[-3:]
def get_3_largest_sortlist(D):
    N = sorted(list(D.values()))[3:]                    # ['e', 'c', 'b']
    L = [i for i in D.keys() if D[i] in N][::-1]
    return L

Test:

D = {'a': 500,
     'b': 5874,
     'c': 560,
     'd': 400,
     'e': 5874,
     'f': 20
    }

print(get_3_largest_heapq(D))                # ['b', 'e', 'c']
print(get_3_largest_list(D))                 # [5874, 5874, 560]
print(get_3_largest_simple(D))               # [560, 5874, 5874]
print(get_3_largest_sortlist(D))             # ['e', 'c', 'b']

Output:

['b', 'e', 'c']
[5874, 5874, 560]
[560, 5874, 5874]
['e', 'c', 'b']